package net.msg
{
	/**
	 * 服务端消息格式</br>	
	 * 消息与协议</br>		
	 *  类型	 	说明	  						格式   										server返回						</br>
	 *<b>Pub:</b></br>
	 * 	t=0		ping消息						{time=delay};					  							</br>
	 * 	t=5		发送指定玩家名字的消息		{name:String,arg:Object};						{arg:Object}			</br>
	 *  t=10   	得到所有房间列表				;											{arg:{"0":Object,"1":Ojbect...}}			</br>
	 * 	
	 *<b>Connect:</b>	请求连接服务器				name:String(UserName);						{"cmd","showLogin"}	</br>
	 *<b>RoomAu:</b>	创建英雄加入游戏世界			{info:Object}	;		</br>
	 *<b>Room:</b>	</br>
	 * 	t=0		创建房间						name:String(房间名)	;						{cmd, "r.roomCreated"}</br>
	 * 	t=1		请求加入房间					roomID:String(房间id);						{cmd, "r.waitingRoomJoined"},or{cmd, "r.roomNotExist"} </br>
	 * 	t=2		房间	所有玩家开始加载地图			;									广播{cmd, "r.beginLoading"}</br>
	 * 	t=3		加载完成进入房间								;							{cmd, "r.getHero",arg:{"0":Object,"1":Object}} </br>
	 * 	t=4		得到房间所有玩家								;							{cmd, "r.getHero",arg:{"0":Object,"1":Object}} </br>
	 * 	t=5		得到除自己外所有玩家指定信息	{key:string}	;							{cmd, "r.updateHero",arg:{{name:string,"key":Object}..} </br>
	 * 	t=10	广播房间所有玩家				arg:Object(广播的内容); </br>
	 * 	t=11	广播房间除自己所有玩家		arg:Object(广播的内容); </br>
	 * 	t=12	广播waitingRoom房间所有玩家	arg:Object(广播的内容); </br>
	 * 	t=13	广播waitingRoom除自己所有玩家		arg:Object(广播的内容); </br>
	 * 	t=20	设置玩家角色信息到服务端		{"key":value,"pos":value,"info":value,...}	;
	 */
	public dynamic class SvrMsg
	{
		public function SvrMsg(cmd:String="",t:int=NaN,arg:Object=null)
		{
			_cmd=cmd;
			_t=t;
			_arg=arg;
		}
		
		//
//		private var _delay:Number;
		private var _cmd:String;
		private var _t:int;
		private var _arg:Object

		public function get arg():Object
		{
			return _arg;
		}

		public function set arg(value:Object):void
		{
			_arg = value;
		}

//		public function get delay():Number
//		{
//			return _delay;
//		}
//
//		public function set delay(value:Number):void
//		{
//			_delay = value;
//		}

		public function get t():int
		{
			return _t;
		}

		public function set t(value:int):void
		{
			_t = value;
		}

		public function get cmd():String
		{
			return _cmd;
		}

		public function set cmd(value:String):void
		{
			_cmd = value;
		}

	}
}